package com.vip.jwt.config;

import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * 自动填充
 */
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {

    @Override
    public void insertFill(MetaObject metaObject) {
        Date now = DateUtil.date();
        // 添加数据是给deleted字段填充初始值0
        this.strictInsertFill(metaObject,"deleted",Integer.class,0);
        // 添加数据时给version字段填充初始值1
        this.strictInsertFill(metaObject,"version",Integer.class,1);
        // （新增）填充createTime字段（匹配实体类的属性名）
        this.strictInsertFill(metaObject,"createTime", Date.class, now);
        // （新增）填充updateTime字段（匹配实体类的属性名）
        this.strictInsertFill(metaObject,"updateTime", Date.class, now);
        // 上一行代码如果则使用此方法
        // this.setFieldValByName("startTime",now,metaObject);
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        Date now = DateUtil.date();
        // （更新）填充updateTime字段（匹配实体类的属性名）
         this.strictUpdateFill(metaObject,"updateTime", Date.class, now);
        // 上一行代码如果则使用此方法
        // this.setFieldValByName("updateTime",now,metaObject);
    }

}
